﻿
/*全选或取消全选当前行*/
function SelectAllRow_Role(flag, classid) {
    if (flag) {
        $(".row_" + classid + " [data-rt]").addClass("active");
        $(".row_" + classid + " input").prop("checked", true);
    }
    else {
        $(".row_" + classid + " [data-rt]").removeClass("active");
        $(".row_" + classid + " input").prop("checked", false);
    }
}
/*单个权限的取消或选中*/
function SelectOne_Role(flag, rt, classid) {
    if (flag) {
        $(".row_" + classid + " [data-rt='" + rt + "']").addClass("active");
        $(".row_" + classid + " [data-rt='" + rt + "'] input").prop("checked", true);
    }
    else {
        $(".row_" + classid + " [data-rt='" + rt + "']").removeClass("active");
        $(".row_" + classid + " [data-rt='" + rt + "'] input").prop("checked", false);
    }
}

//查看某一行是不是全选了
function SelectRowRole_State(classid) {
    var flag = false;
    var arr = new Array();
    var _temp = false;
    $(".row_" + classid + " [data-rt]").each(function () {
        _temp = $(this).find("input").prop("checked") ? 1 : 0;
        arr.push(_temp);
    });

    if (arr.indexOf(0) == -1) {
        return true;
    }
    else {
        return false;
    }
}
//查看某一行除去View是不是有选中
function SelectRowRole_ExView_State(classid) {
    var flag = false;
    var arr = new Array();
    var _temp = false;
    $(".row_" + classid + " [data-rt]").each(function () {
        if ($(this).attr("data-rt").toLowerCase()!="view".toLowerCase()) {
            _temp = $(this).find("input").prop("checked") ? 1 : 0;
            arr.push(_temp);
        }
    });
    
    if (arr.indexOf(1) > -1) {
        return true;
    }
    else {
        return false;
    }

}
//查看某一个是不是选中了
function SelectOneRole_State(rt, classid) {
    return $(".row_" + classid + " [data-rt='" + rt + "'] input").prop("checked");
}
function SetRoleContent() {
    $("[field='Content']").val(GetRole_Value());
}
//单行的全选按钮
$(".check-one").on("change", function (e) {
    var flag = $(this).prop("checked");
    var classid = $(this).attr("data-id");
    SelectAllRow_Role(flag, classid);
    SetRoleContent();
});
//行内的按钮点击
$(".role_row [data-rt]").on("click", function () {
    var _rt = $(this).attr("data-rt");
    var _classid = $(this).attr("data-classid");
    var _ischeck = !$(this).hasClass("active");
    if (_rt.toLowerCase() != "view".toLowerCase()) { //如果选择的不是view 那要选中view
        SelectOne_Role(true, "view", _classid);
    } else { //如果选中的是view  看一下是不是后面有选中的 , 因为如果没有view 后面不能选
        if (SelectRowRole_ExView_State(_classid)) {
            notice("当前栏目有选择其它权限,查看权限不能取消");
            return false;
        }
    }
    SelectOne_Role(_ischeck, _rt, _classid);
    var isall_check = SelectRowRole_State($(this).attr("data-classid"));
    $(".check-one[data-id='" + $(this).attr("data-classid") + "']").prop("checked", isall_check);
    SetRoleContent();
    return false;
});
/*设置权限初始化*/
function SetRole_Value(rv)
{
    rv = role_value;
    var rv_arr = rv.split(',');
    var _temp;
    $.each(rv_arr, function (i, v) {
        _temp = v.split('_');
        SelectOne_Role(true, _temp[0], _temp[1]);
    });
    $(".role_row").each(function (i, e) {
        var isall_check = SelectRowRole_State($(this).attr("data-classid"));
        $(".check-one[data-id='" + $(this).attr("data-classid") + "']").prop("checked", isall_check);
    });
}
/*获取所选择的权限*/
function GetRole_Value()
{
    var rv = ",";
    var _this;
    $(".role_row [data-rt]").each(function (i, e) {
        _this = $(this);
        if (_this.hasClass("active") && _this.find("input").prop("checked")) {
            rv += _this.attr("data-rt") + "_" + _this.attr("data-classid") + ",";
        }
    });
    if (rv.length == 1) { return ""; }
    return rv;
}
SetRole_Value(role_value);